const db=require('../db/index')

// 定义获取文章分类列表的SQL语句
const sql=`select * from ev_article_cate where is_delete=0 order by id`
// 获取文章分类列表
exports.getArticleCates = (req, res) => {
    // 执行SQL语句
    db.query(sql,(err,results)=>{
        if(err) return res.cc(err)
        // 执行SQL语句成功
        res.send({
            status:0,
            message:'获取文章分类成功',
            data:results
        })
    })
  }

// 查询分类名和别名SQL语句
const searchNA=`select * from ev_article_cate where name=? or alias=?`

// 新增文章分类
exports.addArticleCates=(req,res)=>{
    db.query(searchNA,[req.body.name,req.body.alias],(err,results)=>{
        if(err) res.cc(err)
        // 别名和分类名同时被占用
        if(results.length===2) return res.cc('分类名称与别名被占用，请更换后重试！')
        if(results.length==1 && results[0].name==req.body.name && results[0].alias==req.body.alias) return res.cc('分类名称与别名被占用，请更换后重试！')
        // 别名和分类名只被占用一个
        if(results.length==1){
            if(results[0].name==req.body.name)return res.cc('分类的名字被占用，请更换后重试！')
            if(results[0].alias==req.body.alias) return res.cc('分类的别名被占用，请更换后重试!')
        }
        // 添加成功
        // 定于插入数据库的SQL语句
        const insertsql=`insert into ev_article_cate set ?`
        // 执行SQL语句
        db.query(insertsql,req.body,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows!==1) return res.cc('添加分类失败！')
            // 添加成功
            res.cc('添加分类成功',0)
        })
    })
}

// 定义根据id删除文章的SQL语句,注意删除是将其状态变为1
const deletsql=`update ev_article_cate set is_delete=1 where id=?`
// 根据id删除文章分类
exports.deleteCateById=(req,res)=>{
        // 执行SQL语句
        db.query(deletsql,req.params.id,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows!==1) return res.cc('删除文章失败！')
            // 删除成功
            res.cc('删除文章分类成功',0)
        })
}

// 定义根据文章id获取分类数据sql语句
const getArtByIdsql=`select * from ev_article_cate where id=?`
// 根据id获取文章分类的数据
exports.getArtCateById=(req,res)=>{
    // 执行SQL语句
    db.query(getArtByIdsql,req.params.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length!==1) return res.cc('获取文章分类数据失败')
        if(results[0].is_delete==1) return res.cc('获取文章分类数据失败')
        // 获取成功
        res.send({
            status:0,
            message:'获取文章分类成功',
            data:results[0]
        })
    })
}

// 定义查重的SQL语句
const searchUpNA=`select * from ev_article_cate where id<>? and (name=? or alias=?)`
// 根据id更新文章分类数据
exports.updateCateById=(req,res)=>{
  db.query(searchUpNA,[req.body.id,req.body.name,req.body.alias],(err,results)=>{
     if(err) return res.cc(err)
    //  名称和别名都被占用
    if(results.length==2) return res.cc('分类的名称和别名被占用，请更换内容')
    if(results.length==1 && results[0].name==req.body.name && results[0].alias==req.body.alias)return res.cc('分类的名称或别名被占用，请更换内容')
    // 只被占用一条
    if(results.length==1){
        if(results[0].name==req.body.name)return res.cc('分类的名字被占用，请更换后重试！')
        if(results[0].alias==req.body.alias) return res.cc('分类的别名被占用，请更换后重试!')
    }
    // 更新成功
// 定义更新文章分类的SQL语句
 const updateCatesql=`update ev_article_cate set ? where id=?`
    // 执行SQL语句
    db.query(updateCatesql,[req.body,req.body.id],(err,results)=>{
        if(err) return res.cc(err)
        if(results.affectedRows!==1) return res.cc('更新数据失败')
        // 更新成功
        res.cc('更新文章分类数据成功,ok',0)
    })
  })
}
